home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX 6.2 Development Libraries
/
SGI IRIX 6.2 Development Libraries.iso
/
dist
/
complib.idb
/
usr
/
share
/
catman
/
p_man
/
cat3
/
complib
/
CGBFA.z
/
CGBFA
Wrap
Text File
|
1996-03-14
|
4KB
|
133 lines
CCCCGGGGBBBBFFFFAAAA((((3333FFFF)))) CCCCGGGGBBBBFFFFAAAA((((3333FFFF))))
NNNNAAAAMMMMEEEE
CGBFA - CGBFA factors a complex band matrix by elimination.
CGBFA is usually called by CGBCO, but it can be called directly with a
saving in time if RCOND is not needed.
SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
SUBROUTINE CGBFA(ABD,LDA,N,ML,MU,IPVT,INFO)
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
On Entry
AAAABBBBDDDD COMPLEX(LDA, N)
contains the matrix in band storage. The columns
of the matrix are stored in the columns of ABD and
the diagonals of the matrix are stored in rows
ML+1 through 2*ML+MU+1 of ABD .
See the comments below for details.
LLLLDDDDAAAA INTEGER
the leading dimension of the array ABD .
LDA must be .GE. 2*ML + MU + 1 .
NNNN INTEGER
the order of the original matrix.
MMMMLLLL INTEGER
number of diagonals below the main diagonal.
0 .LE. ML .LT. N .
MMMMUUUU INTEGER
number of diagonals above the main diagonal.
0 .LE. MU .LT. N .
More efficient if ML .LE. MU . On Return
AAAABBBBDDDD an upper triangular matrix in band storage and
the multipliers which were used to obtain it.
The factorization can be written A = L*U where
L is a product of permutation and unit lower
triangular matrices and U is upper triangular.
IIIIPPPPVVVVTTTT INTEGER(N)
an integer vector of pivot indices.
IIIINNNNFFFFOOOO INTEGER
= 0 normal value.
= K if U(K,K) .EQ. 0.0 . This is not an error
condition for this subroutine, but it does
indicate that CGBSL will divide by zero if
called. Use RCOND in CGBCO for a reliable
indication of singularity. Band Storage
PPPPaaaaggggeeee 1111
CCCCGGGGBBBBFFFFAAAA((((3333FFFF)))) CCCCGGGGBBBBFFFFAAAA((((3333FFFF))))
If A is a band matrix, the following program segment
will set up the input.
ML = (band width below the diagonal)
MU = (band width above the diagonal)
m = ML + MU + 1
DO 20 J = 1, N
I1 = MAX0(1, J-MU)
I2 = MIN0(n, J+ML)
DO 10 I = I1, I2
K = I - J + M
ABD(K,J) = A(I,J)
10 CONTINUE
20 CONTINUE
This uses rows ML+1 through 2*ML+MU+1 of ABD .
In addition, the first ML rows in ABD are used for
elements generated during the triangularization.
The total number of rows needed in ABD is 2*ML+MU+1 .
The ML+MU by ML+MU upper left triangle and the
ML by ML lower right triangle are not referenced. LINPACK. This
version dated 08/14/78 . Cleve Moler, University of New Mexico, Argonne
National Lab. Subroutines and Functions BLAS CAXPY,CSCAL,ICAMAX Fortran
ABS,AIMAG,MAX0,MIN0,REAL
PPPPaaaaggggeeee 2222